package com.company.oa.document.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.company.oa.document.entity.Document;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * 公文Mapper接口
 */
@Repository
public interface DocumentMapper extends BaseMapper<Document> {
    /**
     * 分页查询公文列表
     *
     * @param page 分页参数
     * @param document 查询条件
     * @return 公文列表
     */
    IPage<Document> selectDocumentPage(Page<Document> page, @Param("document") Document document);

    /**
     * 查询待我审批的公文列表
     *
     * @param page 分页参数
     * @param userId 用户ID
     * @return 公文列表
     */
    IPage<Document> selectPendingApprovalPage(Page<Document> page, @Param("userId") Long userId);

    /**
     * 查询我已审批的公文列表
     *
     * @param page 分页参数
     * @param userId 用户ID
     * @return 公文列表
     */
    IPage<Document> selectApprovedPage(Page<Document> page, @Param("userId") Long userId);

    /**
     * 查询我创建的公文列表
     *
     * @param page 分页参数
     * @param userId 用户ID
     * @return 公文列表
     */
    IPage<Document> selectMyDocumentPage(Page<Document> page, @Param("userId") Long userId);

    /**
     * 查询抄送给我的公文列表
     *
     * @param page 分页参数
     * @param userId 用户ID
     * @return 公文列表
     */
    IPage<Document> selectCcToMePage(Page<Document> page, @Param("userId") Long userId);
} 